package aufgaben;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Scanner;

public class HangmanASCII{
  public static final String[] GALGEN={
    "",

    "/-\\",

    " |\n |\n |\n/-\\",

    " /-\n" +
    " |\n" +
    " |\n" +
    " |\n" +
    " |\n" +
    "/-\\",

    " /---+\n" +
    " |   |\n" +
    " |\n" +
    " |\n" +
    " |\n" +
    "/-\\",

    " /---+\n" +
    " |   |\n" +
    " |   o\n" +
    " |\n" +
    " |\n" +
    "/-\\",

    " /---+\n" +
    " |   |\n" +
    " |   o\n" +
    " |  -|-\n" +
    " |\n" +
    "/-\\",

    " /---+\n" +
    " |   |\n" +
    " |   o\n" +
    " |  -|-\n" +
    " |  / \\\n" +
    "/-\\",
    };

  public static void main(String[] susi) throws Exception{
    // Einlesen der Datei mit den Aufgaben
    BufferedReader br=new BufferedReader(new FileReader(susi[0]));
    ArrayList<String> zeilen=new ArrayList<String>();
    String z;
    while((z=br.readLine())!=null) zeilen.add(z);
    // Auswahl einer Aufgabe
    int position=(int)(Math.random()*zeilen.size());
    String gesucht=zeilen.get(position);
    // Vorbereitung des Spiels; gefunden = ------ ----
    StringBuilder gefunden=new StringBuilder(gesucht);
    for(int i=0; i<gesucht.length(); i++)
      if(gesucht.charAt(i)!=' ') gefunden.setCharAt(i, '-');
    // So viele Durchgänge, bis das Wort gefunden wurde.
    Scanner eingabe=new Scanner(System.in);
    int fehler=0;
    int weiter;
    do{
      weiter=1;
      System.out.println(GALGEN[fehler]);
      System.out.println(gefunden);
      System.out.print("Welchen Buchstaben rätst du? ");
      char c=eingabe.next().charAt(0);
      for(int i=0; i<gesucht.length(); i++)
        if(gesucht.charAt(i)==c){
          gefunden.setCharAt(i, c);
          weiter=0;
        }
      fehler=fehler+weiter;
      if(fehler>=GALGEN.length){
        System.out.println("Du bist tot.");
        return;
      }
    } while(!gesucht.equals(gefunden.toString()));
    System.out.println("Nach "+fehler+" Fehlern gefunden:");
    System.out.println(gefunden);
  }
}

